python - 在 Python 中清理 HTML
全部标签 我在用nekohtml+dom4j解析html文档时遇到了一些问题。我发现我的xpath表达式不再工作了,因为最近在html源代码中添加了一个新的默认htmlxml名称空间。规格说明:前缀xmlns仅用于声明命名空间绑定并由绑定到命名空间名称的定义http://www.w3.org/2000/xmlns/它必须不申报。其他前缀必须未绑定到此命名空间名称,它不能被宣布为默认命名空间。元素名必须没有前缀xmlns。但在我的html文档中,最近(我猜)在html标记中添加了:xmlns=“http://www.w3.org/1999/xhtml”我找到了两个解决方案:1)删除命名空间:DOM
我有XML格式的数据。示例如下所示。我想从tag中提取数据.这是我的XML数据。The40-Year-OldVirginisa2005Americanbuddycomedyfilmaboutamiddle-agedman'sjourneytofinallyhavesex.TheplotAndyStitzer(SteveCarell)istheeponymous40-year-oldvirgin.CastSoundtrackExternalLinks我只需要The40-Year-OldVirginisa2005Americanbuddycomedyfilmaboutamiddle-age
我继承了别人的(糟糕的)代码库,目前正拼命地尝试修复问题。今天,这意味着收集我们模板/主页中所有无效链接的列表。我目前在Python中使用ElementTree,尝试使用xpath解析站点。不幸的是,似乎html格式不正确,ElementTree不断抛出错误。是否有更多错误友好的xpath解析器?有没有办法在非严格模式下运行ElementTree?是否有任何其他方法,例如预处理,可以用来帮助这个过程? 最佳答案 LXML可以解析一些格式错误的HTML,实现ElementTreeAPI的扩展版本,并支持XPath:>>>fromlxm
给定一个像这样的输入XML文档:Thiscontainsan'embedded'HTMLdocumentHTMLDOCHelloWorld我如何提取“内部”HTML文档;将其呈现为CDATA并包含在我的输出文档中?因此输出文档将是一个HTML文档;其中包含一个将元素显示为文本的文本框(因此它将显示内部文档的“源View”)。我试过这个:但这只会渲染文本节点。我试过这个:]]>但这逃避了实际的XSLT,我得到:<xsl:value-ofselect="*"/>我试过这个:[...]这确实插入了一个CDATA部分,但输出仍然只包含文本(剥离的元素):MydocTitle:Thi
在我的数据库中,我有一些需要在xml文件中表示的对象。将项目对象转换为项目的xml表示的最简单/最简单的方法是什么?我应该使用什么Python库? 最佳答案 拥有那个确切的结构有多重要?Django包含一个serializationframework可以将查询集转换为XML,但它根本不符合您的格式。否则您将需要手动编写-为此,我发现最简单的方法是编写一个模型方法,该方法可以以所需格式输出单个实例,然后在循环中对查询集的每个成员调用它。 关于python-将python对象转换为XML表示
我有以下HTMLblock:Thequickbrownfoxjumpsoverthelazydog—Thequickbrownfoxjumpsoverthelazydog.Thequickbrownfoxjumpsoverthelazydog—Thequickbrownfoxjumpsoverthelazydog.Thequickbrownfoxjumpsoverthelazydog—Thequickbrownfoxjumpsoverthelazydog.它不是有效的XHTML。但是,我需要将此HTML包含在XML文档中。我尝试使用XMLFormat
我在使用lxml时遇到了一个小问题。我正在将XML文档转换为HTML文档。原始XML看起来像这样(它看起来像HTML,但它在XML文档中):Localization-Eiffeltower?ParisorVegasBayestheoremp(A|B)当我这样做时(项目是上面的字符串)lxml.html.tostring(lxml.html.fromstring(item))我明白了:Localization-Eiffeltower?ParisorVegasBayestheoremp(A|B)我对没有任何问题,但“贝叶斯定理”段落不再嵌套在外部段落中这一事实是一个问题。有人知道为什么lx
我目前面临的XML看起来像这样:345754这包含在层次结构中。我已经解析了xml,并希望通过搜索“345754”找到ID节点。 最佳答案 vartec的回答需要更正(抱歉,我不确定我能不能做到),它应该是:xmldoc=xml.dom.minidom.parse('your.xml')matchingNodes=[nodefornodeinxmldoc.getElementsByTagName("ID")ifnode.firstChild.nodeValue=='345754']它有两处错误:(i)标签名称区分大小写,因此匹配"i
好的,Python的libxml2绑定(bind)的文档确实是****。我的问题:XML文档存储在Python中的字符串变量中。该字符串是Unicode的实例,其中包含非ASCII字符。我想用libxml2解析它,看起来像这样:#-*-coding:utf-8-*-importlibxml2DOC=u"""Bäääh!"""xml_doc=libxml2.parseDoc(DOC)结果是:Traceback(mostrecentcalllast):File"test.py",line13,inxml_doc=libxml2.parseDoc(DOC)File"c:\Python26\l
我需要从结构中提取数据并将其放入列表中,但我不知道该结构有多少层。对于每个级别,我可以调用level.children(),如果当前级别之下没有级别,则返回[],如果有,则返回返回[object,object,...],我可以在其中的每一个上再次调用children()。我需要深入了解结构,直到将所有级别的数据提取到列表中。当基于这样的结构时:JohnSmithTeamNameAstadium列表应该是这样的:[[{'name':'name','attrs':{},'text':'JohnSmith','parent':None},],[{'name':'team','attrs':{